package com.panfeng.xcloud.boss.provider.rpc.assets;

import com.panfeng.xcloud.boss.provider.dto.request.ExchangeOperateReqDTO;
import com.panfeng.xcloud.boss.provider.rpc.fallback.ExchangeOperateServiceApiFeignApiFallback;
import com.panfeng.xcloud.common.core.web.vo.ResponseVO;
import com.panfeng.xcloud.common.security.feign.FeignOAuth2AutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(value = "xcloud-boss-provider-assets", configuration = FeignOAuth2AutoConfiguration.class, fallback = ExchangeOperateServiceApiFeignApiFallback.class)
public interface ExchangeOperateServiceFeignApi {

	@PostMapping(value = "/feignApi/assets/getTotalAvaliableMoney")
	ResponseVO getTotalAvaliableMoney(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getRiskRate")
	ResponseVO getRiskRate(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getAvaliablePosition")
	ResponseVO getAvaliablePosition(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getPositionAgvPrice")
	ResponseVO getPositionAgvPrice(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getAvaliableMoney")
	ResponseVO getAvaliableMoney(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getAvaliablePieces")
	ResponseVO getAvaliablePieces(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/trade")
	ResponseVO trade(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getOrderDetail")
	ResponseVO getOrderDetail(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/transferInner")
	ResponseVO transferInner(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getAppearMarketPrice")
	ResponseVO getAppearMarketPrice(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getMarketPriceDepth")
	ResponseVO getMarketPriceDepth(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

	@PostMapping(value = "/feignApi/assets/getCandleStick")
	ResponseVO getCandleStick(@RequestBody ExchangeOperateReqDTO exchangeOperateReqDTO);

}
